// 查询字段配置
export interface QueryField {
  label: string
  prop: string
  component: string
  componentProps?: Record<string, any>
  colSpan?: number
  visible?: boolean
  disabled?: boolean
  placeholder?: string
  options?: Array<{ label: string; value: any }>
  defaultValue?: any
}

// 查询表单状态
export interface QueryState {
  form: Record<string, any>
  initialForm: Record<string, any>
  loading: boolean
}

// 查询表单配置选项
export interface QueryFormOptions {
  fields: QueryField[]
  loading?: boolean
  inline?: boolean
  labelWidth?: string | number
  labelPosition?: 'left' | 'right' | 'top'
  size?: 'default' | 'small' | 'large'
}

// 查询表单事件
export interface QueryFormEvents {
  'form-change': (form: Record<string, any>) => void
  search: (form: Record<string, any>) => void
  reset: () => void
}
